/*
* Created on 09.01.2006 for PIROL
*
* SVN header information:
* $Author: LBST-PF-3\orahn $
* $Rev: 2509 $
* $Date: 2006-10-06 10:01:50 +0000 (Fr, 06 Okt 2006) $
* $Id: WarpImageToFencePlugIn.java 2509 2006-10-06 10:01:50Z LBST-PF-3\orahn $
*/
package org.openjump.core.ui.plugin.layer.pirolraster;
import org.openjump.core.apitools.LayerTools;
import org.openjump.core.apitools.PlugInContextTools;
import org.openjump.core.apitools.SelectionTools;
import org.openjump.core.rasterimage.CurrentLayerIsRasterImageLayerCheck;
import org.openjump.core.rasterimage.RasterImageLayer;
import com.vividsolutions.jts.geom.Envelope;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jump.I18N;
import com.vividsolutions.jump.workbench.WorkbenchContext;
import com.vividsolutions.jump.workbench.plugin.AbstractPlugIn;
import com.vividsolutions.jump.workbench.plugin.EnableCheck;
import com.vividsolutions.jump.workbench.plugin.EnableCheckFactory;
import com.vividsolutions.jump.workbench.plugin.MultiEnableCheck;
import com.vividsolutions.jump.workbench.plugin.PlugInContext;
/**
* PlugIn to warp a RasterImage to the bounding box of the Fence.
*
* @author Ole Rahn
* <br>
* <br>FH Osnabrück - University of Applied Sciences Osnabrück,
* <br>Project: PIROL (2006),
* <br>Subproject: Daten- und Wissensmanagement
*
* @version $Rev: 2509 $
* [sstein] - 22.Feb.2009 - modified to work in OpenJUMP
*/
public class WarpImageToFencePlugIn extends AbstractPlugIn {
public WarpImageToFencePlugIn() {
//super(new PersonalLogger(DebugUserIds.OLE));
}
/**
*@inheritDoc
*/
public String getIconString() {
return null;
}
/**
* @inheritDoc
*/
public String getName() {
return I18N.get("org.openjump.core.ui.plugin.layer.pirolraster.WarpImageToFencePlugIn.Warp-Image-To-Fence");
}
/**
*@inheritDoc
*/
public boolean execute(PlugInContext context) throws Exception {
RasterImageLayer rLayer = (RasterImageLayer) LayerTools.getSelectedLayerable(context, RasterImageLayer.class);
if (rLayer==null){
context.getWorkbenchFrame().warnUser(I18N.get("pirol.plugIns.EditAttributeByFormulaPlugIn.no-layer-selected")); //$NON-NLS-1$
return false;
}
Geometry fence = SelectionTools.getFenceGeometry(context);
Envelope envWanted = fence.getEnvelopeInternal();
rLayer.setEnvelope(envWanted);
return true;
}
public static MultiEnableCheck createEnableCheck(final WorkbenchContext workbenchContext) {
MultiEnableCheck multiEnableCheck = new MultiEnableCheck();
EnableCheckFactory checkFactory = new EnableCheckFactory(workbenchContext);
multiEnableCheck.add( checkFactory.createExactlyNLayerablesMustBeSelectedCheck(1, RasterImageLayer.class) );
multiEnableCheck.add( checkFactory.createFenceMustBeDrawnCheck() );
EnableCheck enableCheck = new CurrentLayerIsRasterImageLayerCheck(PlugInContextTools.getContext(workbenchContext));
multiEnableCheck.add(enableCheck);
return multiEnableCheck;
}
}